matlab机器人工具箱在simulink中对机器人进行操作

您所在的位置:网站首页 怎么打开simulink library browser matlab机器人工具箱在simulink中对机器人进行操作

matlab机器人工具箱在simulink中对机器人进行操作

2023-11-19 12:13| 来源: 网络整理| 查看: 265

1、前记:调用机器人工具箱simulink库模型,对机器人模型进行笛卡尔空间运动控制(位置和姿态)

2、操作:

(1)在安装机器人工具箱成功的基础上,打开matlab后在命令行输入 roblocks可以打开机器人工具箱的Simulink库   

                                               

(2)双击进Robot arms中。里面包含机器人运动学,动力学,速度运动学模块。

                   

(3)新建一个模型,拖入需要的模块。主要ikne模块用于逆解运算,plot模块用于工具箱机器人模型显示。ikine模块和plot模型都需要双击进行修改。

其中robot为通过机器人工具箱建立的机器人SerilLink模型。运行代码生成到matlab工作区中。

机器人工具箱模型生成代码:

Ll(1) = Link ([0 0.104 0 -pi/2 ], 'standard'); Ll(2) = Link ([0 0 0.106 0 ], 'standard'); Ll(3) = Link ([0 0 0.063 0 ], 'standard'); Ll(4) = Link ([0 0 0.0695 -pi/2 ], 'standard'); Ll(5) = Link ([0 0 0 -pi/2 ], 'standard'); Ll(6) = Link ([0 0 0 -pi/2 ], 'standard'); robot=SerialLink(Ll,'name','YourBot');

(4)经过逆解运算获得的机器人各关节值可以输入到plot模块中,也可以输入到机器人多体模型中的关节驱动中去。下面机器人多体模型注释不用。只用机器人工具箱模型做显示。

        

其中,位置和姿态使用slider gain作为输入。matlab function为将位置和姿态整理为支持ikine模块T输入的齐次矩阵形式。

代码为:

function T =inverse(Pos,Rot) %#codegen T=zeros(4,4); % X t1=Rot(1)*pi/180;t2=Rot(2)*pi/180;t3=Rot(3)*pi/180; ct = cos(t1); st = sin(t1); R1 = [ 1 0 0 0 ct -st 0 st ct ]; % Y ct1 = cos(t2); st1 = sin(t2); R2 = [ ct1 0 st1 0 1 0 -st1 0 ct1 ]; % Z ct2 = cos(t3); st2 = sin(t3); R3 = [ ct2 -st2 0 st2 ct2 0 0 0 1 ]; R=R1*R2*R3; numMats = size(R,3); H = zeros(4,4,numMats,'like',R); H(1:3,1:3,:) = R; H(4,4,:) = ones(1,1,numMats,'like',R); H(1,4)=Pos(1);H(2,4)=Pos(2);H(3,4)=Pos(3); T=H;

3.运行结果

改变末端位置(姿态不变):

改变末端姿态(位置不变):

【姿态控制这块还是有问题,来不及修改了,就留着给个简单的思路吧,可以这样玩并且可以扩展的很多且方便】

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3